// 引入配置对象
import appConfig from './index.js'
// 此vm参数为页面的实例，可以通过它引用vuex中的变量
module.exports = (vm) => {
    // 初始化请求配置
    uni.$u.http.setConfig((config) => {
        /* config 为默认全局配置*/
		// 引用配置对象中的接口地址作为全局请求地址
		config.baseURL = appConfig.baseApi;
        return config
    })
	
	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => { 
	    // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
	    config.data = config.data || {}
		// TODO 后续需要控制登录请求的headers传递认证信息
	    return config 
	}, config => {
	    return Promise.reject(config)
	})
	
	// 响应拦截
	// uni.$u.http.interceptors.response.use((response) => { 
	//    // console.log("response", response)
	//     // 获取自定义参数
	//     const custom = response.config?.custom
	//     // 判断请求是否正常、
	//     const data = response
	//     if (data && typeof data === 'object' && 'code' in data) {
	//         if(data.code == 200){
	//             // 这里可以返回包含业务数据和其他元数据的对象
	//             return {
	//                 code: data.code,
	//                 data: data.data === undefined? { } : data.data,
	//                 // 其他可能需要的字段，如msg等
	//                 msg: data.msg
	//             };
	//         }else{
	//             // 使用showToast接口弹出错误信息
	//             if (custom.toast!== false) {
	//                 // uView提供类似于uni.showToast显示提示信息
	//                 uni.$u.toast(data.msg)
	//             }
	//         }
	//     } else {
	//         // 处理数据结构异常的情况，例如记录错误日志或弹出通用错误提示
	//         if (custom.toast!== false) {
	//             uni.$u.toast('数据结构异常，请联系管理员');
	//         }
	//     }
	//     return response;
	// }, (response) => { 
	//     // 对响应错误做点什么 （statusCode!== 200）
	//     return Promise.reject(response)
	// })
}